﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace VISS.API.Users {

    /// <summary>
    /// This interface is used for Web Admin to manage messages from user
    /// </summary>
    public interface IUserMessageAdmin {

        /// <summary>
        /// Get all user messages with paging
        /// </summary>
        /// <param name="page">page number (begin from 1)</param>
        /// <param name="recordPerPage">The record per page.</param>
        /// <param name="totalRecord">The total record.</param>
        /// <returns></returns>
        List<UserMessageAdminEnt> GetAllWithPaging(int page, int recordPerPage, out long totalRecord);
        /// <summary>
        /// Get all messages were sent by specified user with paging
        /// </summary>
        /// <param name="userKey">The user key.</param>
        /// <param name="page">page number (begin from 1)</param>
        /// <param name="recordPerPage">The record per page.</param>
        /// <param name="totalRecord">The total record.</param>
        /// <returns>Return list of UserMessageAdminEnt </returns>
        List<UserMessageAdminEnt> GetBySentUserKeyWithPaging(string userKey, int page, int recordPerPage, out int totalRecord);

        /// <summary>
        /// Count all messages contains in system
        /// </summary>
        /// <returns>Return number of messages</returns>
        long CountAll();
    }
}
